// 用户状态
import { userAccountLogin } from '@/api/user'
export default {
  namespaced: true,
  // state定义可以写成函数 => 和vue中data的定义类似 => 避免引用
  state: () => ({
    // 存储登录人的信息
    profile: {
      id: '',
      avatar: '',
      nickname: '',
      account: '',
      mobile: '',
      token: ''
    }
  }),
  mutations: {
    updateProfile (state, payload) {
      state.profile = payload
    },
    // 删除登录人的信息
    delProfile (state) {
      state.profile = {}
    }
  },
  actions: {
    async loginAction (ctx, payload) {
      const { result } = await userAccountLogin(payload)
      console.log('login:', result)
      ctx.commit('updateProfile', result)
    },
    // 退出登录
    logoutAction ({ commit }) {
      /**
       * 思路:
       * 1.调用接口
       * 2.清除本地上次登录人的数据
       * 3.跳转到登录页
       */
      commit('delProfile')
      // 调用其他模块的mutations方法:需要在commit第三个参数,加上{root:true}
      commit('cart/setList', [], { root: true })
    }
  }
}
